1. Field of the Disclosure
The present disclosure relates to memory design, and more particularly to determining a desirable number of segments for a multi-segment single error correcting (SEC) coding scheme to be employed by a memory.
2. Description of the Related Art
Memory is often susceptible to various environmental phenomena that can affect the integrity of the data stored in the memory. For example, cosmic rays can cause the states of bits stored in the memory to change, which can lead to data corruption. Due to this issue, error detection and correction have become important features in memories currently in use.
Many error correction schemes employ single error correcting (SEC) codes. In such schemes, check bits are added to each of the data words (i.e., the basic data unit for a given computer architecture) stored in a memory. The added check bits can be used to facilitate the detection and correction of errors. In schemes that employ SEC codes, only single-bit errors are typically correctable. These same schemes are not normally able to handle multi-bit upsets. In general, a multi-bit upset refers to the corruption of a plurality of bits in a data word. For example, a data word may contain 32 bits. A multi-bit upset would occur if, for example, 3 of the 32 bits become corrupted. As used herein, the size of a multi-bit upset refers to the maximum distance between any 2 bits in a memory where a single environmental event (e.g., a cosmic ray) can lead to the corruption of both bits.
Because schemes employing SEC codes are able to only correct single-bit errors, many conventional memory design tools employ different techniques for minimizing the occurrence of uncorrectable multi-bit upsets. One technique involves dividing the data words of a memory into multiple segments, and providing each segment with its own check bits. In doing so, multi-bit upsets in a single word can be corrected (so long as the errors occur in different segments). As used herein, such a technique is referred to as a multi-segment single error correcting (SEC) coding scheme. In implementing multi-segment SEC coding schemes, conventional design tools do not account for certain aspects of a memory's structure. As such, conventional design tools are unable to effectively determine a desirable number of segments to be used in a multi-segment SEC coding scheme. As a result, memory performance, storage efficiency, and/or error correction can be adversely impacted.